<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>腾讯日</title>
</head>
<body>
<script>
// 鸭子国的国王，喜欢听音乐，1000只鸭子 组成嘎嘎叫合唱团
// 简单数据类型 ， 值是不可以改变的
// 复杂数据类型 ， 值可以改变， 类型不能改变
//const choir = [] ;  //合唱团数组  复杂数据类型
// js 没有特定的 Array 类型
// 除了简单类型，其他的都是对象
// 数组是 Object 的一种，
// console.log(typeof choir); 
// 流程式思维 -> 封装成一个个函数
// 看到一个 pc 设计稿的时候，不再盯着 html 细节，组件
// 函数 对代码的封装，组成一个功能 单元
// 代码工作划分成一个个函数
// 每个函数都只做一件事 

/*
*  @func  招募1000只鸭子的合唱团
*  @return  (Array[{}])
*/

let duck={
    //sing: ''
    sing(){
        console.log('嘎嘎嘎');
    }
}

let cat = {
    // sing() {
    //     console.log ('喵喵喵')
    // }
}

let click = {
    sing() {
        console.log ('嘎嘎嘎')
    }
}

/*
*  @func  招募一个合唱团成员
*  @return  (Array[{}])
*/
const choir = [] ;
function buildChoir(animal) {
    if(animal.sing && typeof animal.sing ==='function'){
    choir.push(animal);
    }
}

for( let i=0; i<999 ; i++){
    buildChoir(duck);
}
buildChoir(click);

if(choir.length >= 1000){
    console.log('合唱团招募完成');
}
</script>
</body>
</html>